package com.bjl.service;

import com.alibaba.fastjson.JSONObject;
import orm.base.baseImp.BaseServiceInterface;

import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.util.Map;

/**
 * Created by ashin on 2017/11/22.
 */
public interface DealService extends BaseServiceInterface {

    /**
     * 用户积分增加
     * @param map
     * @return
     * @throws Exception
     */
    public JSONObject recharge(Map map, HttpSession session) throws Exception;

    /**
     * 查询所有用户
     * @param map
     * @param session
     * @return
     * @throws Exception
     */
    public abstract JSONObject query(Map map,HttpSession session) throws Exception;

    /**
     * 用户积分核销
     * @param map
     * @param session
     * @return
     * @throws Exception
     */
    public abstract JSONObject consume(Map map,HttpSession session) throws Exception;

    /**
     * 投注消耗积分
     * @param map
     * @param session
     * @return
     * @throws Exception
     */
    public abstract JSONObject bet(Map map,HttpSession session) throws Exception;

    /**
     * 查询用户历史积分消费记录
     * @param map
     * @param session
     * @return
     * @throws Exception
     */
    public abstract JSONObject dealAccount(Map map,HttpSession session) throws Exception;

    /**
     * 获得单个用户积分信息
     * @param map
     * @param session
     * @return
     * @throws Exception
     */
    public abstract JSONObject getSingleUserTotal(Map map,HttpSession session) throws Exception;

    /**
     * 获得用户积分总额
     * @param map
     * @param session
     * @return
     * @throws Exception
     */
    public abstract JSONObject getUserTotal(Map map,HttpSession session) throws Exception;

    /**
     * 导出用户积分出入总额
     * @param map
     * @param response
     * @return
     * @throws Exception
     */
    public abstract void exportUserTotalExcel(Map map,HttpSession session, HttpServletResponse response) throws Exception;

    /**
     * 获得单个用户积分信息
     * @param map
     * @param session
     * @return
     * @throws Exception
     */
    public abstract JSONObject getSingleUserTotalByAdmin(Map map,HttpSession session) throws Exception;

    /**
     * 查询每小时用户数
     * @param map
     * @return
     * @throws Exception
     */
    public abstract JSONObject queryUserCountByPerHour(Map map,HttpSession session) throws Exception;

    /**
     * 导出用户每小时积分情况
     * @param map
     * @param session
     * @return
     * @throws Exception
     */
    public abstract void exportUserCountByPerHour(Map map,HttpSession session,HttpServletResponse response) throws Exception;

    /**
     * 查询用户所有投注信息(按照房间查询)
     * @param map
     * @return
     * @throws Exception
     */
    public abstract JSONObject queryUserIntegralRoom(Map map,HttpSession session) throws Exception;

    /**
     * 查询所有投注信息(按照房间查询)
     * @param map
     * @return
     * @throws Exception
     */
    public abstract JSONObject queryAllIntegralRoom(Map map,HttpSession session) throws Exception;

    /**
     * 根据局数查询所有
     * @param map
     * @param session
     * @return
     * @throws Exception
     */
    public abstract JSONObject querySingleIssueAccount(Map map,HttpSession session) throws Exception;

    /**
     * 判断是否中奖
     * @param map
     * @param session
     * @return
     * @throws Exception
     */
    public abstract JSONObject checkIsWin(Map map,HttpSession session) throws Exception;

    /**
     * 查询数据总览信息
     * @param map
     * @param session
     * @return
     * @throws Exception
     */
    public abstract JSONObject queryAllDataInfo(Map map,HttpSession session) throws Exception;

    /**
     * 房间概况
     * @param map
     * @param session
     * @return
     * @throws Exception
     */
    public abstract JSONObject queryRoomsDataInfo(Map map,HttpSession session) throws Exception;

    /**
     * 用户概况
     * @param map
     * @param session
     * @return
     * @throws Exception
     */
    public abstract JSONObject queryUserDataInfo(Map map,HttpSession session) throws Exception;

    /**
     * 导出总表
     * @param map
     * @param session
     * @return
     * @throws Exception
     */
    public abstract void exportAllDataInfo(Map map,HttpSession session, HttpServletResponse response) throws Exception;

    /**
     * 导出房间概况
     * @param map
     * @param session
     * @return
     * @throws Exception
     */
    public abstract void exportRoomsDataInfo(Map map,HttpSession session, HttpServletResponse response) throws Exception;

    /**
     * 导出用户概况
     * @param map
     * @param session
     * @return
     * @throws Exception
     */
    public abstract void exportUserDataInfo(Map map,HttpSession session, HttpServletResponse response) throws Exception;


}
